@echo off
chcp 65001 >nul 2>&1
setlocal enabledelayedexpansion

:: ===================== 配置区（仅需修改这里）=====================
:: 分卷所在目录（可直接拖入文件夹，或手动填写）
set "CHUNK_DIR=%~dp0"
:: 分卷前缀（需和拆分脚本的 OUTPUT_PREFIX 一致，例如拆分后是 "sharedassets0.assets.resS_001.part"，则前缀填 "sharedassets0.assets.resS_"）
set "CHUNK_PREFIX="
:: 合并后的文件名（含扩展名，例如原文件是 sharedassets0.assets.resS，则填这个）
set "MERGED_FILE=sharedassets0.assets.resS"
:: =================================================================

:: 验证分卷目录是否存在
if not exist "!CHUNK_DIR!" (
    echo [91m错误：分卷目录 "!CHUNK_DIR!" 不存在！[0m
    pause
    exit /b 1
)

:: 拼接完整的分卷通配符路径
set "CHUNK_PATTERN=!CHUNK_DIR!\!CHUNK_PREFIX!*.part"
:: 检查是否存在分卷文件
dir /b "!CHUNK_PATTERN!" >nul 2>&1
if errorlevel 1 (
    echo [91m错误：在目录 "!CHUNK_DIR!" 中未找到以 "!CHUNK_PREFIX!" 开头的.part分卷文件！[0m
    pause
    exit /b 1
)

:: 拼接合并后的完整文件路径
set "MERGED_FULL_PATH=!CHUNK_DIR!\!MERGED_FILE!"
:: 检查目标文件是否已存在，避免覆盖
if exist "!MERGED_FULL_PATH!" (
    echo [93m警告：合并后的文件 "!MERGED_FULL_PATH!" 已存在！[0m
    set /p "OVERWRITE=是否覆盖？(Y/N)："
    if /i not "!OVERWRITE!"=="Y" (
        echo 合并操作已取消！
        pause
        exit /b 0
    )
)

:: 开始合并（核心逻辑：/b 表示二进制合并，避免文件损坏）
echo.
echo [92m开始合并分卷...[0m
echo 分卷目录：!CHUNK_DIR!
echo 分卷前缀：!CHUNK_PREFIX!
echo 合并后文件：!MERGED_FULL_PATH!
echo.
copy /b "!CHUNK_PATTERN!" "!MERGED_FULL_PATH!" >nul 2>&1

:: 验证合并是否成功
if errorlevel 1 (
    echo [91m错误：文件合并失败！[0m
    pause
    exit /b 1
) else (
    echo.
    echo ========================
    echo [92m合并完成！[0m
    echo 合并后的文件：!MERGED_FULL_PATH!
    echo 分卷文件仍保留，可手动删除.part文件
    echo ========================
)

pause
exit /b 0